More Viable Plasma における exit ゲーム
m0t0k1ch1.icon More Viable Plasma の提案の中から in-flight exit ゲームに関する部分をピックアップ
---.icon
https://gyazo.com/1f24fea487107490f67bdd565eabdfec
We have to construct a game which, given a transaction, returns any exitable inputs or outputs.
あるトランザクションについて exit 可能な出力を返すゲームを構築する必要がある。
---.icon
Construction
In the non-byzantine case, we can always use the standard exit game. However, in the event of invalid transactions or witheld blocks, we need to constuct a “special exit”.
非ビザンチンな場合は常に通常の exit ゲームを行えばよい。しかし、不正なトランザクションや withhold されたブロックが発生した場合、「special exit」を構成する必要がある。
Our exit game involves two periods, triggered by a user who posts a bond alongside a transaction$ t. The first period consists of the following:
exit ゲームは 2 フェーズから成り、これらはトランザクション$ tと同時に担保を提出することで開始される。第 1 フェーズは以下の通り。
1. Honest owners of inputs or outputs to$ t“piggyback” on this exit and post a bond. Users who do not piggyback will not be able to exit.
2. Any user may present any competitor to$ t.
1. 誠実な $ tの出力の保有者は、この exit に「piggyback」して担保を提出する。piggyback しないユーザーは exit できない。
2. 全ユーザーが$ tの競合を提出できる。
Users who present a competitor (2.) must place a bond. Any other user may present an earlier competitor, claim the bond, and place a new bond. This construction ensures that the last presented competitor is also the earliest competitor.
2. において競合を提出するユーザーも担保を提出しなければならない。その他のユーザーは誰でも、より古い競合と新しい担保を提出することでそのときの担保を獲得できる。この仕組みによって、最後に提出された競合が最も古い競合であることが保証される。
m0t0k1ch1.icon 基本的に、第 1 フェーズを経て残るのはカノニカルな出力となるはず
If no competitors to$ tare brought to light, then the outputs can be challenged by an included spend. Any unchallenged outputs are exited. The bonds of all inputs and honest outputs are returned.
$ tの競合が提出されない場合、出力はそれが使用された証拠によって challenge される。challenge されなかった出力は exit され、担保と正当な出力が返却される。
Otherwise, if competitors were presented, period 2 serves to determine whether$ tis canonical. Any user may present:
競合が提出された場合、第 2 フェーズがどのトランザクションがカノニカルなのかを決定する役割を担う。ここで、ユーザーは誰でも以下を提出できる。
1. $ t, included in the chain before all competitors presented in period 1.
2. Spends of any “piggybacked” inputs or outputs (except$ titself).
3. That some input was not created by a canonical transaction. This means revealing both the transaction that created the input, as well as some competitor to that transaction such that the competitor came first.
1. 第 1 フェーズで提出された全ての競合よりも先にチェーンに含まれているトランザクション
2. 「piggyback された」トランザクションの出力が使用された証拠($ t以外)
3. $ tの入力がカノニカルなトランザクションの出力ではない証拠
その入力(となっている出力)を生成したトランザクションとそのトランザクションよりも先にチェーンに含まれた競合を両方公開することを意味する
m0t0k1ch1.icon 各 challenge をもうちょっとわかりやすく表現すると、以下のようになると思う
m0t0k1ch1.icon 1. は、単純に第 1 フェーズの抜け漏れを潰すための challenge
m0t0k1ch1.icon 2. は「exit しようとしてる出力は使用済みだ!」という challenge
m0t0k1ch1.icon 3. は「exit しようとしてる出力を含むトランザクションが、カノニカルでないトランザクションの出力を入力として使ってる!」という challenge
Challenges of type (2.) block any spent inputs or outputs to$ tfrom exiting. Challenges of type (3.) block any non-canonical inputs from exiting.
タイプ 2 の challenge は使用済みの出力の exit をブロックする。タイプ 3 の challenge はカノニカルでない入力(を含むトランザクションの出力)の exit をブロックする。
m0t0k1ch1.icon ()で補足した部分の解釈が正しいか不安。。。
At the end of the game, only correctly exitable transactions will still be in the queue.
ゲームが終わると、正しく exit 可能なトランザクションのみがキューに残るだろう。
---.icon
Justification
This construction essentially allows any input or output to exit if it satisfies the following conditions:
この構成では、exit しようとしている出力が以下の条件を満たす場合に exit できる。
1. An earlier spend of one of its inputs does not exist.
2. A spend of it does not exist.
3. It has not been double spent (though note that if it has, the unspent outputs of the first canonical spend, if such a spend exists, are exitable separately).
1. それ(を含むトランザクション)の入力(となっている出力)を使用する、より新しいトランザクションが存在しない
2. それを使用するトランザクションが存在しない
3. それが double spent でない(double spent だったとしても、最初のカノニカルなトランザクションの未使用出力は、そのようなトランザクションが存在すれば別途 exit 可能である)
(1.) is satisfied for$ tby the challenge-response game between periods 1 and 2, and for each of$ t's inputs by a type (3.) challenge in period 2.
1. は、第 1 フェーズと第 2 フェーズにおける challenge-response ゲームと、第 2 フェーズにおけるタイプ 3 のチャレンジによって満たされる。
Both (2.) and (3.) are satisfied by any type (2.) challenge in period 2.
2. と 3. は両方、第 2 フェーズにおけるタイプ 2 の challenge によって満たされる。
In other words, the game determines if:
言い換えると、ゲームは以下を判別する。
1. $ canonical(t)
2. $ o \in unspent(T_n)
3. $ o \notin double\_spent(T_n)
If all of these are true, then:
これら全てが正だった場合、以下を満たす。
$ o \in unspent(reality(T_n)) \setminus double\_spent(T_n) = E(T_n)
Otherwise,$ o \notin E(T_n), which is the desired result.
そうでなければ、$ o \notin E(T_n)となる。以上より、所望の結果が得られる。